home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HKIN.BAS Copyrigit(C) T.Komura / 家計簿システム /
- 30 ' / Version 1 /
- 31 ' Version 4.0 1992.06.20-1992.06.28 / 入力・編集プログラム /
- 32 ' Version 1.0 1993.01.01 公開バージョン
- 33 ' Version 1.1a 1993.01.01 辞書入力追加
- 34 ' Version 1.1b 1993.01.01 外部ファイルによる辞書入力スイッチ
- 100 '------------------------------------------------------------------
- 140 CLEAR ,,,,,300*1024
- 150 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 193 VERN$="1.0" 'バージョンNo.
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 0,24,0:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 260 DIM XB1(3,26),XB2(3,26),YB1(3,26),YB2(3,26),BST(3,26)
- 270 DIM DYN$(16),DRM$(16),DYN(16)
- 280 DIM WRD$(16,128),WLN(16,128),WRDM(128)
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 330 'CLS:COLOR 7:PRINT int((int(((155-14+1)+7)/8)*(415-131+1)*4+8-1)/8)
- 350 DIM CUTN#(795),DICD#(2565),DICT#(1456)
- 370 ON ERROR GOTO *ERROR
- 380 '
- 410 CBMAX=10:'コントロールボタン個数
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *表紙表示:CONSOLE 0,24,2
- 1015 MESN=1:GOSUB *MESDSP
- 1020 GOSUB *本日の日付
- 1030 GOSUB *日付表示
- 1040 MOUSE 1,320,64,1
- 1050 GOSUB *指定日データ表示
- 1055 IF DICIF=1 THEN GOSUB *DICREAD
- 1060 GOSUB *辞書入力スイッチ
- 1070 MESN=18:GOSUB *SNDMSG
- 1100 *メイン選択
- 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
- 1130 SWPASS=1:G=1:GOSUB *マウスボタン選択
- 1145 IF SWNO>=CBMAX+1 THEN *SSEL
- 1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05,*S06,*S07,*S08,*S09,*S10
- 1160 GOTO 1100:STOP
- 3490 '
- 3500 *S01:' 1年先 ---------------------------------------------------
- 3505 YDEF=+1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
- 3510 *S02:' 1年前 ---------------------------------------------------
- 3515 YDEF=-1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
- 3520 *S03:' 1月先 ---------------------------------------------------
- 3525 YDEF= 0:MDEF=+1:DDEF= 0: GOTO *YMDRNEW
- 3530 *S04:' 1月前 ---------------------------------------------------
- 3535 YDEF= 0:MDEF=-1:DDEF= 0: GOTO *YMDRNEW
- 3540 *S05:' 1日先 ---------------------------------------------------
- 3545 YDEF= 0:MDEF= 0:DDEF=+1: GOTO *YMDRNEW
- 3550 *S06:' 1日前 ---------------------------------------------------
- 3555 YDEF= 0:MDEF= 0:DDEF=-1: GOTO *YMDRNEW
- 3560 '
- 3570 *YMDRNEW
- 3572 SWNOX=SWNO
- 3575 G=1:B=SWNOX:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 3580 IF IPF=0 THEN 3610
- 3585 MESN=4:GOSUB *MESDSP
- 3590 CMES$="家計簿データ保存実行":GOSUB *確認
- 3600 IF SWNO=2 THEN 3610
- 3605 GOSUB *家計簿データ保存
- 3610 GOSUB *年月日変更
- 3620 GOSUB *日付表示
- 3650 MESN=6:GOSUB *MESDSP
- 3660 GOSUB *指定日データ表示
- 3670 IPF=0
- 3680 G=1:B=SWNOX:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 3690 GOTO *メイン選択
- 3695 '
- 3700 *SSEL:'------------------------------------------------------------
- 3720 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 3730 IPNO=B-(CBMAX+1):SWNOX=SWNO
- 3740 IF IPNO=0 THEN GOSUB *出来事入力 :GOTO 3900
- 3760 GOSUB *金額・内容入力:GOTO 3900
- 3900 IPF=1
- 3910 G=1:B=SWNOX:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 3980 MES2OFF=0
- 3990 GOTO *メイン選択
- 3995 '
- 4000 *S07:'取消 --------------------------------------------------------
- 4010 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 4020 MESN=6:GOSUB *MESDSP
- 4030 GOSUB *指定日データ表示
- 4035 IPF=0
- 4040 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 4050 GOTO *メイン選択
- 4060 '
- 4500 *S08:'保存 --------------------------------------------------------
- 4510 GOSUB *家計簿データ保存
- 4580 GOTO *メイン選択
- 4590 '
- 5000 *S09:'辞書使用スイッチ --------------------------------------------'
- 5010 G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 5020 IF DICIF=0 THEN MESN=14 ELSE MESN=15
- 5030 GOSUB *MESDSP
- 5035 DICIF=1-DICIF
- 5036 IF DICIF=1 AND DICEXF=0 THEN GOSUB *DICREAD
- 5040 GOSUB *辞書入力スイッチ'
- 5050 G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 5060 GOTO *メイン選択
- 5070 '
- 8940 '
- 9000 *S10:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=10:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 9030 IF IPF=0 THEN 9110
- 9035 MESN=4:GOSUB *MESDSP
- 9040 CMES$="家計簿データ保存実行":GOSUB *確認
- 9045 IF SWNO=2 THEN 9110
- 9050 GOSUB *家計簿データ保存
- 9060 '
- 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 9120 INTERVAL OFF
- 9130 'MOUSE 5:GOSUB *FADEOUT
- 9150 CHAIN "HKmain.bas"
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10100 LOCATE 0,YM:COLOR CB,CB:PRINT SPACE$(79);
- 10110 LOCATE XM,YM:COLOR CM,CB:PRINT MES$;
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA " - HK version 1.1 - 記入・編集 "
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
- 10230 DATA 2, 23, 6, 0, 0 :'--- 03
- 10235 DATA "ディスクにこの月の家計簿ファイルがありません。新しくファイルを作りますか?"
- 10240 DATA 2, 23, 6, 0, 1 :'--- 04
- 10245 DATA "家計簿データが保存されていません! 保存する--[OK] 保存しない--[NG]"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA "★家計簿ファイル新規作成中 !!"
- 10260 DATA 2, 23, 4, 0, 1 :'--- 06
- 10265 DATA "★家計簿ファイル読み込み中 !!"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "家計簿ファイルが無いため、この月のデータは読み込みできません!"
- 10280 DATA 2, 23, 7, 0, 0 :'--- 08
- 10285 DATA "このデータを家計簿ファイルに書き込んでよろしいですか? [OK],[NG]"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA " ★★★ しばらくお待ちください。"
- 10300 DATA 2, 23, 7, 0, 0 :'--- 10
- 10305 DATA "[ファイル記入・訂正] -- 出来事を記入してください。"
- 10310 DATA 2, 23, 7, 0, 0 :'--- 11
- 10315 DATA "[ファイル記入・訂正] -- 金額を記入してください。"
- 10320 DATA 2, 23, 7, 0, 0 :'--- 12
- 10325 DATA "[ファイル記入・訂正] -- 内容を記入してください。"
- 10330 DATA 2, 23, 4, 0, 1 :'--- 13
- 10335 DATA "★ 家計簿データ保存中。"
- 10340 DATA 2, 23, 4, 0, 1 :'--- 14
- 10345 DATA "各項目入力時の辞書入力を[ON]にします。"
- 10350 DATA 2, 23, 4, 0, 1 :'--- 15
- 10355 DATA "各項目入力時の辞書入力を[OFF]にします。"
- 10360 DATA 2, 23, 4, 0, 1 :'--- 16
- 10365 DATA "★ 辞書データ読み込み中 しばらくお待ちください"
- 10370 DATA 2, 23, 7, 0, 1 :'--- 17
- 10375 DATA "辞書から語句を選んでください。 "
- 10390 '
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%
- 11150 *RETURN_SNDMSG :WAIT SWAIT:RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "GOKRO1" :' 4 ごくろうさん
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "OMATA" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
- 12515 READ MNDN:'当月の日数
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 13000 '/////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13011 ' 入力 = LX,LY : 表示開始座標 出力 = LMG$ : 入力後の文字列
- 13012 ' LM$ : 初期文字列
- 13013 ' LC : 表示文字色
- 13014 ' LL : 最大文字数
- 13015 ' LINS : 挿入モード=1
- 13016 '
- 13020 LCSRCL=1:LLINCL=6
- 13030 ' CR MR ML INS DEL BS CAN
- 13040 LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5 :'v1.1a
- 13050 CC$=CHR$(&H0D,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13060 LMG$=SPACE$(LL):LMGD$=SPACE$(LL)
- 13070 LA$=INKEY$:IF LA$<>"" THEN 13070
- 13080 IF LINS=1 THEN CWDT=1 ELSE CWDT=7
- 13090 LCSR=0:LCSRX=LCSR:GOSUB *LCSRDX
- 13100 LOCATE LX,LY:COLOR LC:PRINT LM$ ' ・・・・・・・・・・ 初期文字列表示
- 13110 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
- 13120 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13130 GOSUB *LMREAD
- 13140 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13150 LA$=INKEY$:IF LA$="" THEN 13150
- 13160 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13170 IF CLA=0 THEN 13190
- 13180 ON CLA GOTO *CR,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13190 IF KANF=1 THEN *KANJI
- 13200 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13210 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13220 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13230 GOTO *KANJI
- 13240 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13250 IF LINS=1 THEN 13270
- 13260 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13280
- 13270 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13280 GOSUB *LCSRINC
- 13290 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13300 GOTO *IN1C
- 13310 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13320 ON KANF+1 GOTO 13330,13360
- 13330 KANF=1:KANW$="":KANW$=LA$
- 13340 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13350 GOSUB *LCSRD:GOTO *IN1C
- 13360 KANF=0:KANW$=KANW$+LA$
- 13370 IF LINS=1 THEN 13390
- 13380 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13400
- 13390 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13400 GOSUB *LCSR2INC
- 13410 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13420 GOTO *IN1C
- 13430 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13440 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
- 13450 MOUSE 0: MOUSE 1,LMSX,LMSY,1 :'v1.1a
- 13460 RETURN:'----------------------------------------------------------
- 13470 *MR :GOSUB *LMREAD2 '////////// Right
- 13480 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *IN1C
- 13490 GOSUB *LCSRINC :GOTO *IN1C
- 13500 *ML :GOSUB *LMREAD2 '////////// Left
- 13510 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *IN1C
- 13520 GOSUB *LCSRDEC :GOTO *IN1C
- 13530 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13540 IF LINS=1 THEN CWDT=1 ELSE CWDT=7
- 13550 GOSUB *LCSRDX :GOTO *IN1C
- 13560 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13570 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13580 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13590 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13600 *BS :GOSUB *LMREAD '////////// BackSpace
- 13610 IF LCSR=0 THEN GOTO *IN1C
- 13620 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13640
- 13630 GOSUB *LCSRDEC :LDEF=1:GOTO 13640
- 13640 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13650 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13660 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13670 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13680 GOSUB *LMREAD :GOTO *IN1C
- 13690 *LMREAD: '////////// Disp Char Read
- 13700 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13710 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13720 *LMREAD1:LMGD$=""
- 13730 FOR II=1 TO KLEN(LMX$)
- 13740 LMG=KTYPE(LMX$,II)
- 13750 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13760 LMGD$=LMGD$+LMD$
- 13770 NEXT II
- 13780 IF LEN(LMGD$)<=LL THEN 13800
- 13790 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13800 IF RIGHT$(LMGD$,1)<>"1" THEN 13820
- 13810 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13820 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13830 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13840 LMG$=LMX$:LMGDX$=LMGD$
- 13850 RETURN
- 13860 *LCSRD :LXC=8*(LX+LCSR) :LYC=LY*19:GOSUB *LCSRL: '//// Csr Disp
- 13870 *LCSRDX:LXC=8*(LX+LCSRX):LYC=LY*19:GOSUB *LCSRL: '//// Csr Erace
- 13880 LCSRX=LCSR:RETURN
- 13890 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+14),XOR,LCSRCL,BF:RETURN
- 13900 *LCSRINC :LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1
- 13905 GOSUB *LCSRD:RETURN
- 13910 *LCSR2INC:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSRDEC :LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSR2DEC:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LMXDSP :LOCATE LX,LY:COLOR LC:PRINT LMX$;:RETURN
- 13950 '-------------------------------------------------------------------
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 16000 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19350 LOCATE 2,23:COLOR 2,0
- 19355 PRINT SPACE$(77);
- 19359 LOCATE 2,23:COLOR 2,0
- 19360 PRINT ERMES$;"[実行]キーを押してね!";
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LOCATE 3,23:COLOR 6,0
- 19410 PRINT "エラー処理を終わります。";SPACE$(52);
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20105 LOAD@ TIFDRV$+"\HKIN.TIF",(0,0)
- 20110 FOR II=1 TO 15
- 20115 X=100:Y=134+19*(II-1)
- 20120 SYMBOL(X,Y),CFI$(II),.8!,.8!,0,,,,4
- 20125 NEXT II
- 20130 'GOSUB *初期表示ポイント検出
- 20145 INTERVAL ON
- 20160 RETURN
- 20190 '
- 20200 *本日の日付
- 20210 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 20212 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 20214 TY$=RIGHT$(STR$(TY),4)
- 20220 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 20230 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 20250 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 20260 TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+" 曜日"
- 20265 COLOR 7,0:LOCATE 46,1:PRINT TYMD$
- 20270 COLOR CW:LOCATE 61,1:PRINT WKM$
- 20280 RETURN
- 20290 '
- 20300 *日付表示
- 20310 YR$=RIGHT$(STR$(YR),4)
- 20315 NBN=4:NBA$=YR$:GOSUB *数字漢字変換:KYR$=NBK$
- 20320 MN$=RIGHT$(STR$(100+MN),2)
- 20325 NBN=2:NBA$=MN$:GOSUB *数字漢字変換:KMN$=NBK$
- 20330 DY$=RIGHT$(STR$(100+DY),2)
- 20335 NBN=2:NBA$=DY$:GOSUB *数字漢字変換:KDY$=NBK$
- 20340 GOSUB *週検索:IF CW=0 THEN CW=7
- 20350 DYMD$=KYR$+" "+KMN$+" "+KDY$+" "
- 20360 COLOR 6,0:LOCATE 12,3:PRINT DYMD$;
- 20370 COLOR CW,0:PRINT WKM$;
- 20375 IYM$=YR$+MN$
- 20380 RETURN
- 20390 '
- 20400 *指定日データ表示
- 20410 GOSUB *HKISRC
- 20420 IF FIDX=0 THEN 20450
- 20430 GOSUB *データ表示
- 20440 RETURN
- 20450 GOSUB *新規ファイル作成
- 20480 RETURN
- 20490 '
- 20495 '
- 20500 *データ表示
- 20510 RDY=DY:GOSUB *HKDGET
- 20520 LOCATE 12,5:COLOR 7:PRINT DEV$
- 20530 FOR II=1 TO 15
- 20532 LOCATE 20,II+6:COLOR 0:PRINT DYN$(II);" ";DRM$(II);
- 20534 NEXT II
- 20540 IF MID$(IMAK$,DY,1)<>" " THEN 20550
- 20545 LOCATE 76,5:COLOR 4:PRINT " ":GOTO *合計表示
- 20550 LOCATE 76,5:COLOR 4:PRINT "★":GOTO *合計表示
- 20555 *合計表示
- 20560 LOCATE 68, 8:COLOR 1:PRINT DIYN$
- 20562 LOCATE 68,12:COLOR 0:PRINT DBYN$
- 20564 LOCATE 68,20:COLOR 2:PRINT DOYN$
- 20580 RETURN
- 20590 '
- 20600 *年月日変更
- 20601 GOSUB *WEEKN
- 20602 DY=DY+DDEF
- 20604 IF DY<1 THEN MN=MN-1:GOSUB *WEEKN:DY=MNDN
- 20606 IF DY>MNDN THEN MN=MN+1:DY=1
- 20610 MN=MN+MDEF
- 20620 IF MN<1 THEN MN=12+MN:YR=YR-1
- 20630 IF MN>12 THEN MN=MN-12:YR=YR+1
- 20640 YR=YR+YDEF
- 20650 IF YR<0 THEN YR=10000+YR
- 20660 IF YR>9999 THEN YR=YR-10000
- 20665 GOSUB *WEEKN:IF DY>MNDN THEN DY=MNDN
- 20668 DY$=RIGHT$(STR$(100+DY),2)
- 20670 MN$=RIGHT$(STR$(100+MN),2)
- 20680 YR$=RIGHT$(STR$(10000+YR),4)
- 20690 RETURN
- 20695 '
- 20700 *新規ファイル作成
- 20710 FOR II=5 TO 22:LOCATE 12,II:PRINT SPACE$(66):NEXT II
- 20720 IF (YR*12+MN)=(YRM*12+MNM+1) THEN 20750:'----次月チェック
- 20730 MESN=7:GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
- 20740 FOR I=1 TO 5000:NEXT I:RETURN
- 20750 MESN=3:GOSUB *MESDSP:'-----------------------確認
- 20760 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
- 20770 GOSUB *確認
- 20780 ON SWNO GOTO 20800,20870
- 20800 MESN=5:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 20810 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
- 20820 RI=IR+1:GOSUB *HKIPUT
- 20830 DEV$=SPACE$(64):DDM$=SPACE$(32):'------------ファイル作成
- 20835 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(32):NEXT JJ
- 20840 FOR RDY=1 TO 31
- 20845 LOCATE 70,23:COLOR 4:PRINT RIGHT$(STR$(RDY),2);" / 31";
- 20850 GOSUB *HKDPUT
- 20860 NEXT RDY:MESN=14:GOSUB *SNDMSG
- 20870 RETURN
- 20880 '
- 21000 *出来事入力
- 21010 MESN=10:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21020 LX=12:LY=5:LC=5:LL=64:LM$=DEV$:LINS=1
- 21040 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
- 21050 DEV$=LMG$
- 21060 LOCATE LX,LY:COLOR 7:PRINT DEV$
- 21070 RETURN
- 21080 '
- 21100 *金額・内容入力
- 21110 MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21120 LX=20:LY=6+IPNO:LC=1:LL=10:LM$=DYN$(IPNO):LINS=0
- 21140 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
- 21150 DYN$=LMG$
- 21155 DYN$(IPNO)=RIGHT$(SPACE$(10)+STR$(VAL(DYN$)),10)
- 21160 LOCATE LX,LY:COLOR 0:PRINT DYN$(IPNO)
- 21170 '
- 21180 IF DICIF=1 THEN GOSUB *辞書入力 ELSE 21210
- 21185 IF ENDF=1 THEN 21210
- 21190 IF ENDF=0 THEN 21300
- 21210 MESN=12:GOSUB *MESDSP
- 21220 LX=32:LY=6+IPNO:LC=1:LL=32:LM$=DRM$(IPNO):LINS=1
- 21240 LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
- 21250 DRM$(IPNO)=LMG$
- 21260 LOCATE LX,LY:COLOR 0:PRINT DRM$(IPNO)
- 21280 '
- 21300 GOSUB *HKDCAL
- 21310 GOSUB *合計表示
- 21320 RETURN
- 21330 '
- 21900 '
- 22000 *家計簿データ保存
- 22010 G=1:B=8:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 22020 MESN=13:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 22030 RDY=DY:GOSUB *HKDPUT
- 22040 MID$(IMAK$,DY,1)="*"
- 22045 MID$(IMAK$,32,1)=" "
- 22050 GOSUB *HKIPUT
- 22060 IPF=0
- 22065 G=1:B=8:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 22070 RETURN
- 22080 '
- 23000 *辞書データ枠表示
- 23020 GET@A(14,131)-(155,415),DICD#
- 23030 LOAD@ TIFDRV$+"\DICD.TIF",(14,131)
- 23035 DEF FONT "システム 12ドット": SYMBOL(25,137),CFI$(IPNO),.8!,.75!,0
- 23040 GET@A(20,186)-(116,409),DICT#
- 23050 RETURN
- 23060 *辞書データ枠消去
- 23070 PUT@A(14,131)-(155,415),DICD#
- 23075 DEF FONT "システム 16ドット"
- 23080 RETURN
- 23090 '
- 23100 *辞書入力スイッチ
- 23120 IF DICIF=0 THEN DICSC=0 ELSE DICSC=4
- 23130 LINE(454,60)-(455,70),PSET,DICSC,BF
- 23140 WAIT SWAIT
- 23150 RETURN
- 23160 '
- 23200 *辞書データ表示
- 23220 PUT@A(20,186)-(116,409),DICT#
- 23230 LINE(119,136)-(147,148),PSET,0,BF
- 23240 WPAGE=INT((WSP-1)/16)+1
- 23245 MPAGE=INT((WRDM(IPNO)-1)/16)+1
- 23250 WPG$=RIGHT$(STR$(WPAGE),1)+"/"+RIGHT$(STR$(MPAGE),1)
- 23260 SYMBOL(122,137),WPG$,.75!,.75!,4,,,,2
- 23320 FOR II=0 TO 15
- 23330 IF (WSP+II)>WRDM(IPNO) THEN 23360
- 23340 WRDX$=LEFT$(WRD$(IPNO,WSP+II),14)
- 23345 IF KLEFT$(WRDX$,1)="★" THEN WRDDC=4 ELSE WRDDC=7
- 23350 SYMBOL(22,187+14*II),WRDX$,.75!,.75!,WRDDC
- 23360 NEXT II
- 23370 RETURN
- 23380 '
- 23500 *辞書入力
- 23510 GOSUB *辞書データ枠表示
- 23515 SPS=INSTR(DRM$(IPNO)," ")
- 23520 IF SPS=1 THEN LMG$="" :GOTO 23523
- 23521 IF SPS>30 OR SPS=0 THEN LMG$=DRM$(IPNO):GOTO 23523
- 23522 LMG$=LEFT$(DRM$(IPNO),SPS)
- 23523 LX=32:LY=6+IPNO:LC=1:LOCATE LX,LY:COLOR LC:PRINT LMG$
- 23525 WSP=1
- 23530 GOSUB *辞書データ表示
- 23540 MESN=17:GOSUB *MESDSP
- 23550 SWPASS=1:G=3:GOSUB *マウスボタン選択
- 23560 IF SWNO>5 THEN *WSEL
- 23570 ON SWNO GOTO *WS1,*WS2,*WS3,*WS4,*WS5
- 23575 GOTO 23550
- 23580 '
- 23600 *WS4:'--- PAGE INC
- 23605 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23610 WSP=WSP+16
- 23620 IF WSP>WRDM(IPNO) THEN WSP=WSP-16:GOTO 23635
- 23630 GOSUB *辞書データ表示
- 23635 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23640 GOTO 23540
- 23650 *WS5:'--- PAGE DEC
- 23655 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23660 WSP=WSP-16
- 23670 IF WSP<1 THEN WSP=WSP+16:GOTO 23685
- 23680 GOSUB *辞書データ表示
- 23685 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23690 GOTO 23540
- 23700 *WS3:'--- 手入力
- 23710 ENDF=1
- 23720 GOTO 23740
- 23730 *WS1:'--- 終了
- 23735 ENDF=0
- 23740 IF RIGHT$(LMG$,1)="・" THEN LMG$=LEFT$(LMG$,LEN(LMG$)-1)
- 23742 DRM$(IPNO)=LEFT$(LMG$+SPACE$(32),32)
- 23745 LX=32:LY=6+IPNO:LC=0:LOCATE LX,LY:COLOR LC:PRINT DRM$(IPNO)
- 23750 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23760 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23770 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23780 GOSUB *辞書データ枠消去
- 23790 RETURN
- 23800 *WS2:'--- 取消
- 23810 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23820 LMG$=""
- 23830 LX=32:LY=6+IPNO:LC=1:LOCATE LX,LY:COLOR LC:PRINT SPACE$(32)
- 23840 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23850 GOTO 23540
- 23900 *WSEL'--------------
- 23910 G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 23912 WSELN=WSP+(SWNO-6)
- 23914 IF WSELN>WRDM(IPNO) THEN 23940
- 23916 IF KLEFT$(WRD$(IPNO,WSELN),1)="★" THEN 23940
- 23920 LMG$=LMG$+WRD$(IPNO,WSELN)+"・"
- 23925 IF LEN(LMG$)<=32 THEN 23930
- 23926 LMG$=LEFT$(LMG$,33):CHT=KTYPE(KRIGHT$(LMG$,1),1)
- 23927 IF CHT=1 THEN LMG$=LEFT$(LMG$,31) ELSE LMG$=LEFT$(LMG$,32)
- 23930 LX=32:LY=6+IPNO:LC=1:LOCATE LX,LY:COLOR LC:PRINT LMG$
- 23940 G=3:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
- 23950 GOTO 23540
- 29900 '------------------------------------------------------------------
- 30130 *ボタン座標読み取り
- 30140 RESTORE *ボタン座標:READ SWGN
- 30150 FOR G=1 TO SWGN
- 30160 READ SWN(G),SMX(G),SMY(G),SMW(G)
- 30170 FOR B=1 TO SWN(G)
- 30180 READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
- 30190 NEXT B
- 30200 NEXT G
- 30210 RETURN
- 30220 '
- 30230 *ボタンON_OFF表示
- 30240 IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 30260
- 30250 BSC=0:BSB=7:BSA=5
- 30260 CONNECT(XB1(G,B ),YB2(G,B) )-(XB2(G,B) ,YB2(G,B) )-(XB2(G,B ),YB1(G,B) ),BSC,PSET
- 30270 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
- 30280 CONNECT(XB1(G,B) ,YB2(G,B) )-(XB1(G,B) ,YB1(G,B) )-(XB2(G,B) ,YB1(G,B) ),BSB,PSET
- 30290 CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
- 30300 LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
- 30305 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 16
- 30310 RETURN
- 30320 '
- 30330 *マウスボタン選択
- 30340 SWERC=0
- 30350 IF MOUSE(2,0)=0 THEN 30350
- 30360 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
- 30370 FOR IMS=1 TO SWN(G)
- 30380 IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 30410
- 30390 IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 30410
- 30400 SWNO=IMS:IMS=SWN(G)+1
- 30410 NEXT IMS:FOR IM=1 TO 500:NEXT IM
- 30420 IF SWNO=0 AND SWPASS=1 THEN GOSUB *シート選択判定:GOTO 30460
- 30430 IF SWNO=0 AND SWERC>5 THEN MESN=12:GOSUB *SNDMSG :GOTO 30350
- 30440 IF SWNO=0 THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 30350
- 30460 SWPASS=0
- 30470 RETURN
- 30480 '
- 30500 *数字漢字変換
- 30505 NBK$=""
- 30510 FOR INBK=1 TO NBN
- 30512 NBAX$=MID$(NBA$,INBK,1)
- 30514 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
- 30520 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
- 30530 NEXT INBK
- 30540 RETURN
- 30580 '
- 30760 '
- 30820 *シート選択判定
- 30880 RETURN
- 30890 '
- 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 31010 FOR II=0 TO 15
- 31020 PALETTE II,[16*II,16*II,16*II]
- 31030 NEXT II
- 31040 FOR II=0 TO 255 STEP 5
- 31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 31054 PALETTE JJ,[KK,KK,KK]
- 31056 NEXT JJ
- 31060 NEXT II
- 31070 RETURN
- 31080 '
- 31200 *確認
- 31205 LOCATE 27,3:PRINT SPACE$(52)
- 31210 GET@A(214,50)-(630,79),CUTN#
- 31220 LOAD@ TIFDRV$+"\CAUTION.TIF",(214,50)
- 31225 PLAY "o6l4ce"
- 31230 FOR II=1 TO 4
- 31232 LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
- 31234 WAIT SWAIT/10
- 31236 LOCATE 40,3:PRINT SPACE$(28)
- 31237 WAIT SWAIT/10
- 31238 NEXT II
- 31239 LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG:'28chr
- 31240 G=2:GOSUB *マウスボタン選択
- 31245 G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
- 31250 LOCATE 40,3:PRINT SPACE$(28)
- 31260 WAIT SWAIT/5
- 31270 PUT@A(214,50)-(630,79),CUTN#
- 31272 GOSUB *日付表示
- 31275 RETURN
- 31280 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 DRV$=LEFT$(DATDRV$,2)
- 35010 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
- 35015 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35030 OPEN "R",#2,FLN$
- 35040 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35050 IR=LOF(2)
- 35060 RETURN
- 35070 '
- 35100 *HKDOPN:'---------- 家計簿データファイルオープン
- 35105 DRV$=LEFT$(DATDRV$,2)
- 35110 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35120
- 35115 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35120 FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
- 35130 OPEN "R",#1,FLN$
- 35140 FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
- 35150 AR=LOF(1)
- 35160 RETURN
- 35170 '
- 36000 *HKISRC:'---------- インデックスファイル検索
- 36005 FIDX=0
- 36010 GOSUB *HKIOPN
- 36020 FOR R=1 TO IR
- 36030 GET #2,R
- 36040 IF IYM$<>I$(1) THEN 36060
- 36050 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
- 36060 NEXT R
- 36062 GET #2,IR
- 36064 YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
- 36070 CLOSE #2
- 36080 RETURN
- 36090 '
- 36100 *HKIPUT:'---------- インデックスファイル書き込み
- 36110 GOSUB *HKIOPN
- 36120 LSET I$(1)=IYM$
- 36130 LSET I$(2)=IMAK$
- 36140 PUT #2,RI
- 36150 CLOSE #2
- 36160 RETURN
- 36170 '
- 36200 *HKDGET:'---------- 家計簿データ読み込み
- 36210 GOSUB *HKDOPN
- 36220 R=RDY
- 36230 GET #1,R
- 36240 DEV$=D$(1)
- 36250 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 36252 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*32+1,32):NEXT II
- 36253 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*32+1,32):NEXT II
- 36254 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*32+1,32):NEXT II
- 36255 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*32+1,32):NEXT II
- 36256 DDM$=D$(7)
- 36260 GOSUB *HKDCAL
- 36280 CLOSE #1
- 36290 RETURN
- 36295 '
- 36300 *HKDPUT:'---------- 家計簿データ書き込み
- 36310 GOSUB *HKDOPN
- 36320 R=RDY
- 36330 LSET D$(1)=DEV$
- 36340 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
- 36342 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
- 36343 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
- 36344 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
- 36345 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
- 36346 LSET D$(7)=DDM$
- 36350 PUT #1,R
- 36360 CLOSE #1
- 36370 RETURN
- 36380 '
- 36400 *HKDCAL:'---------- 家計簿金額計算
- 36410 FOR II=1 TO 16:DYN(II)=VAL(DYN$(II)):NEXT II
- 36420 DIYN=0:FOR II=1 TO 3 :DIYN=DIYN+DYN(II):NEXT II
- 36430 DIYN$=RIGHT$(SPACE$(8)+STR$(DIYN),8)
- 36440 DBYN=0:FOR II=4 TO 7 :DBYN=DBYN+DYN(II):NEXT II
- 36450 DBYN$=RIGHT$(SPACE$(8)+STR$(DBYN),8)
- 36460 DOYN=0:FOR II=4 TO 15:DOYN=DOYN+DYN(II):NEXT II
- 36480 DOYN$=RIGHT$(SPACE$(8)+STR$(DOYN),8)
- 36490 RETURN
- 36495 '
- 36500 *DICREAD:'---------- 辞書読み込み 'V1.1 1993.07.11
- 36505 MESN=16:GOSUB *MESDSP
- 36510 FOR II=1 TO 15
- 36520 DICNO$=RIGHT$(STR$(100+II),2)
- 36530 OPEN "I",#4,DICDRV$+"\HKWRD"+DICNO$+".DIC"
- 36540 WRDC=1
- 36550 IF EOF(4)<>0 THEN 36600
- 36555 INPUT #4,WLN$:WLN(II,WRDC)=VAL(WLN$)
- 36560 IF EOF(4)<>0 THEN 36600
- 36565 INPUT #4,WFR$:'DUMMY
- 36570 IF EOF(4)<>0 THEN 36600
- 36575 INPUT #4,WRD$:WRD$(II,WRDC)=WRD$
- 36580 WRDC=WRDC+1
- 36590 IF WRDC<=128 THEN 36550
- 36600 WRDM(II)=WRDC-1
- 36610 CLOSE #4
- 36620 NEXT II:DICEXF=1
- 36630 RETURN
- 36640 '
- 37190 '
- 37290 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.1 1993.08.04
- 39020 ' FOR HK T.Komura
- 39030 OPEN "R",#1,"(1)HK.CFG"
- 39040 FIELD #1,1 AS D$
- 39050 IF LOF(1)=0 THEN *CFGFE1
- 39060 CLOSE
- 39070 OPEN "I",#1,"HK.CFG"
- 39080 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
- 39090 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
- 39100 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
- 39110 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$
- 39120 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
- 39130 GOSUB *CFGREAD :'-- SNDMF
- 39140 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39150 SNDMF=VAL(RIGHT$(CFG$,1))
- 39160 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
- 39170 GOSUB *CFGREAD :'-- SWAIT
- 39180 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39190 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39200 FOR II=1 TO 15
- 39210 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39220 NEXT II
- 39230 GOSUB *CFGREAD :'-- DICIF
- 39240 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39250 DICIF=VAL(RIGHT$(CFG$,1))
- 39260 GOSUB *CFGREAD :'-- DICSF
- 39270 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39280 DICSF=VAL(RIGHT$(CFG$,1))
- 39290 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$
- 39300 CLOSE
- 39310 RETURN
- 39320 '---------------------------------------------
- 39330 *CFGFE1
- 39340 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39350 CLOSE:WAIT 100:SYSTEM
- 39360 *CFGFE2
- 39370 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
- 39380 CLOSE:WAIT 100:SYSTEM
- 39390 *CFGFE3
- 39400 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39410 CLOSE:WAIT 100:SYSTEM
- 39420 *CFGREAD
- 39430 IF EOF(1)<>0 THEN *CFGFE3
- 39440 LINE INPUT #1,CFG$
- 39450 IF LEFT$(CFG$,1)="/" THEN 39430
- 39460 RETURN
- 39470 '//////////////////////////////////////////////////
- 39480 '
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 3 'SWGN スイッチグループ数
- 40090 '/////////////////////////////
- 40100 '-------------------- スイッチグループ[1]
- 40110 ' SWN(G),SMX,SMY,SMW
- 40120 DATA 26 , 1, 1, 0
- 40130 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 40140 DATA 163,182, 56, 73'," ▲ ",7 01
- 40150 DATA 183,202, 56, 73'," ▼ ",7 02
- 40160 DATA 251,270, 56, 73'," ▲ ",7 03
- 40170 DATA 271,290, 56, 73'," ▼ ",7 04
- 40180 DATA 364,383, 56, 73'," ▲ ",7 05
- 40190 DATA 384,403, 56, 73'," ▼ ",7 06
- 40200 DATA 515,568, 56, 79',"取 消",1 07
- 40210 DATA 569,624, 56, 79',"保 存",1 08
- 40215 DATA 415,448, 56, 73',"辞 書",1 09
- 40220 DATA 592,630, 3, 41'," END ",1 10
- 40230 DATA 14, 88, 94,116',"出来事",0 11
- 40240 DATA 90,155,131,149',"給 与",1 12
- 40250 DATA 90,155,150,168',"臨 時",1 13
- 40260 DATA 90,155,169,187',"他収入",1 14
- 40270 DATA 90,155,188,206',"食 費",0 15
- 40280 DATA 90,155,207,225',"生活費",0 16
- 40290 DATA 90,155,226,244',"洗濯代",0 17
- 40300 DATA 90,155,245,263',"光熱費",0 18
- 40310 DATA 90,155,264,282',"被服費",0 19
- 40320 DATA 90,155,283,301',"交際費",0 20
- 40330 DATA 90,155,302,320',"娯楽費",0 21
- 40340 DATA 90,155,321,339',"酒 代",0 22
- 40350 DATA 90,155,340,358',"車維持",0 23
- 40360 DATA 90,155,359,377',"教育費",0 24
- 40370 DATA 90,155,378,396',"雑 費",0 25
- 40380 DATA 90,155,397,415',"他支出",0 26
- 40500 '-------------------- スイッチグループ[2]
- 40510 ' SWN(G),SMX,SMY,SMW
- 40520 DATA 2 ,0.8,0.8, 0
- 40530 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40540 DATA 552,583, 56, 73'," OK ",1 01
- 40550 DATA 584,615, 56, 73'," NG ",1 02
- 40600 '-------------------- スイッチグループ(3)
- 40610 ' SWN(G),SMX,SMY,SMW
- 40620 DATA 21 ,0.6,0.8, 0
- 40630 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 40640 DATA 20, 49,156,174' ,"終了",2
- 40650 DATA 50, 79,156,174' ,"取消",1
- 40660 DATA 80,115,156,174' ,"キー入力",0
- 40670 DATA 116,132,156,174' ,"▼",5
- 40680 DATA 133,149,156,174' ,"▲",5
- 40690 DATA 117,149,186,199' ,"",1
- 40700 DATA 117,149,200,213' ,"",1
- 40710 DATA 117,149,214,227' ,"",1
- 40720 DATA 117,149,228,241' ,"",1
- 40730 DATA 117,149,242,255' ,"",1
- 40740 DATA 117,149,256,269' ,"",1
- 40750 DATA 117,149,270,283' ,"",1
- 40760 DATA 117,149,284,297' ,"",1
- 40770 DATA 117,149,298,311' ,"",1
- 40780 DATA 117,149,312,325' ,"",1
- 40790 DATA 117,149,326,339' ,"",1
- 40800 DATA 117,149,340,353' ,"",1
- 40810 DATA 117,149,354,367' ,"",1
- 40820 DATA 117,149,368,381' ,"",1
- 40830 DATA 117,149,382,395' ,"",1
- 40840 DATA 117,149,396,409' ,"",1
- 60000 '
- 60010 ' 座標確認 DEBUG ROUTINE
- 60020 '
- 60030 MOUSE 0:MOUSE 1,0,0,1
- 60040 IF MOUSE(2,1)<>0 THEN STOP
- 60050 IF MOUSE(2,0)=0 THEN 60050
- 60060 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60070 LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
- 60080 GOTO 60040
- 61000 '
-